const processData = (_) => {
  const data = {
    name:_.name, // 请求路径(含资源名
    initiatorType: _.initiatorType, //什么类型的资源
    duration: _.duration // 加载时长 emmm 请求回来的耗时？
  };

  return data;
};

export default {
  init(cb){
    // 获取资源相关的信息

    // const resourceData = performance.getEntriesByType('resource');
    // console.log('resourceData:', resourceData); // 不写在.onload里的话 因为我们整个性能监控脚本是放在html里最前面的 故只能拿到自己这个资源

    /** 为了兼容性使用这种↓ 注意自己过滤要监控哪些资源*/
    // window.onload = function () {
    //   const resourceData = performance.getEntriesByType('resource');
    //   const data = resourceData.map(_ => processData(_));
    //   cb(data)
    // };

    if (window.PerformanceObserver) { // MutationObserver
      //IE下不认
      const observer = new PerformanceObserver(list => { //有几个资源就会触发几次(收到一个发送一个) 但不会包含本脚本资源
        const data = list.getEntries(); // data是一个数组类型
        console.log('data:',data); // 这样是一次一个拿的
        cb(processData(data[0]))
      });
      observer.observe({entryTypes: ['resource']});

    } else {
      window.onload = function () {
        const resourceData = performance.getEntriesByType('resource');
        const data = resourceData.map(_ => processData(_));
        cb(data)
      };
    }

  }
}
